Java’da Tarih, Sayı ve Para Birimi Sınıfları
Bu yazıda Java ile tarih, sayı ve para birimi sınıflarını detaylı şekilde inceliyoruz. Farklı ülkelere göre tarih formatlamak, para birimlerini yerel ayara göre göstermek ve çok dilli uygulamalar geliştirmek istiyorsanız java.text ve java.util paketlerindeki temel sınıfları bilmeniz gerekir.
Date, Calendar,
DateFormat, NumberFormat ve Locale sınıflarının
ne işe yaradığını, hangi senaryolarda kullanıldığını ve yerelleştirme süreçlerinde nasıl birlikte çalıştıklarını öğreneceksiniz.
Java ekosistemiyle ilgili diğer içerikler için Java içeriklerimize de göz atabilirsiniz.
1. java.util.Date
Date sınıfı Java’nın eski tarih-saat sınıflarından biridir.
Bugün bazı metotları eski kabul edilse de, legacy kod tabanlarında ve
Calendar ile DateFormat arasında dönüşüm yapılırken hâlâ karşınıza çıkabilir.
Date now = new Date();
Yeni projelerde doğrudan Date ile yoğun işlem yapmak yerine daha modern API’ler tercih edilse de,
bu sınıfı okumak ve anlamak eski Java projelerini sürdürmek için hâlâ önemlidir.
2. java.util.Calendar
Calendar sınıfı tarih hesaplamalarını kolaylaştırır.
Gün ekleme, ay değiştirme, haftanın gününü bulma gibi işlemler için kullanılır.
Soyut bir sınıf olduğu için doğrudan oluşturulmaz; genellikle getInstance() ile elde edilir.
Calendar cal = Calendar.getInstance();
Örnek çıktı:
1st date Sat Sep 08 19:46:40 MDT 2001
Sunday is the first day of the week
trillionth milli day of week is 7
new date Mon Oct 08 19:46:40 MDT 2001
Özellikle farklı yerel ayarlarda takvim hesaplamaları yapmak gerektiğinde Calendar sınıfı uzun süre yaygın olarak kullanılmıştır.
3. java.text.DateFormat
DateFormat, tarihleri farklı ülke ve bölgelere göre biçimlendirmek için kullanılır.
Aynı tarih, farklı locale ayarlarında bambaşka şekilde görünebilir.
9/8/01 7:46 PM
Sep 8, 2001
9/8/01
Sep 8, 2001
September 8, 2001
Saturday, September 8, 2001
Çok dilli ve uluslararası uygulamalarda tarihleri doğru göstermek için bu sınıf oldukça faydalıdır.
4. java.text.NumberFormat
NumberFormat, sayısal değerleri ve para birimlerini yerel ayara göre biçimlendirir.
Örneğin aynı sayı Türkiye, ABD veya Almanya için farklı biçimde gösterilebilir.
123.457
123,457
$123.46
123,46 ?
Finansal uygulamalar, raporlama ekranları ve uluslararası kullanıcıya hitap eden sistemlerde
NumberFormat kullanmak oldukça önemlidir.
5. java.util.Locale
Locale sınıfı, dil ve ülke bilgisini tutar.
Yerelleştirme işlemlerinin merkezinde yer alır ve DateFormat ile
NumberFormat gibi sınıflarla birlikte çalışır.
Locale loc = new Locale("pt", "BR");
Bu yapı sayesinde tarih, saat, sayı ve para birimleri farklı kullanıcı gruplarına uygun şekilde gösterilebilir.
6. Kullanım Şekline Göre Java Tarih ve Sayı Sınıfları
Aşağıdaki tablo, en sık karşılaşılan tarih ve sayı senaryolarında hangi sınıfın nasıl kullanılacağını özetler.
| Kullanım Şekli | Kod Sıralaması |
|---|---|
| Geçerli tarih ve saati alma |
1. Date d = new Date();2. String s = d.toString();
|
| Yerel ayarda tarih ve saat hesaplaması yapma |
1. Calendar c = Calendar.getInstance();2. c.add(...) ve c.roll(...) kullanın
|
| Farklı yerel ayarda tarih ve saat hesaplaması yapma |
1. Locale loc = new Locale(dil); veya new Locale(dil, ulke);2. Calendar c = Calendar.getInstance(loc);
|
| Farklı stillerle tarih formatlama |
1. Calendar c = Calendar.getInstance();2. Locale loc = new Locale(...);3. Date d = c.getTime();4. DateFormat df = DateFormat.getDateInstance(style, loc);5. String s = df.format(d);
|
| Sayısal veya parasal değerleri yerel formata çevirme |
1. Locale loc = new Locale(...);2. NumberFormat nf = NumberFormat.getInstance(loc);veya NumberFormat nf = NumberFormat.getCurrencyInstance(loc);3. String s = nf.format(sayi);
|
Modern Java Notu
Eski Java projelerinde Date, Calendar ve DateFormat sınıfları çok yaygın kullanılır.
Ancak güncel Java projelerinde tarih-saat işlemleri için çoğunlukla java.time API’si tercih edilir.
Yine de legacy sistemleri anlamak, bakım yapmak ve sınav/teorik konuları öğrenmek için bu klasik sınıfları bilmek hâlâ önemlidir.
Sonuç
Bu yazıda Java tarih, saat ve sayı sınıflarını kapsamlı şekilde inceledik.
Artık Date, Calendar, DateFormat, NumberFormat ve
Locale sınıflarının ne işe yaradığını ve hangi senaryolarda kullanıldığını daha net biliyorsunuz.
Bu sınıflar sayesinde uygulamalarınıza çok dilli ve yerelleştirilmiş destek ekleyebilirsiniz.
Bizi takip etmeyi unutmayın. İyi çalışmalar!